package com.heihei.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.heihei.common.page.Query;
import com.heihei.common.response.ResponseVO;
import com.heihei.entity.HelloWorldEntity;
import com.baomidou.mybatisplus.extension.service.IService;
import com.heihei.vo.HelloWorldTreeVO;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author duanhengfei
 * @since 2021-02-24
 */
public interface HelloWorldService extends IService<HelloWorldEntity> {

    /**
     * 方法描述: 添加
     *
     * @param entity
     * @Return {@link ResponseVO< Long>}
     * @throws
     * @author duanhengfei
     * @date 2021年02月24日 10:41:05
     */
    ResponseVO<Long> add(HelloWorldEntity entity);

    /**
     * 方法描述: 修改
     *
     * @param entity
     * @Return {@link ResponseVO< String>}
     * @throws
     * @author duanhengfei
     * @date 2021年02月24日 14:14:49
     */
    ResponseVO<String> edit(HelloWorldEntity entity);

    /**
     * 方法描述: 列表查询
     *
     * @param param
     * @param query
     * @Return {@link ResponseVO< IPage< HelloWorldEntity>>}
     * @throws
     * @author duanhengfei
     * @date 2021年02月24日 14:19:07
     */
    ResponseVO<IPage<HelloWorldEntity>> listConditional(HelloWorldEntity param, Query query);

    /**
     * 方法描述: 获取详情
     *
     * @param id
     * @Return {@link ResponseVO< HelloWorldEntity>}
     * @throws
     * @author duanhengfei
     * @date 2021年02月24日 14:27:16
     */
    ResponseVO<HelloWorldEntity> get(Long id);

    /**
     * 方法描述: 删除
     *
     * @param id
     * @Return {@link ResponseVO< String>}
     * @throws
     * @author duanhengfei
     * @date 2021年02月24日 14:28:59
     */
    ResponseVO<String> delete(Long id);

    /**
     * 方法描述: 批量删除
     *
     * @param idList
     * @Return {@link ResponseVO< String>}
     * @throws
     * @author duanhengfei
     * @date 2021年02月24日 14:30:04
     */
    ResponseVO<String> deleteBatch(List<Long> idList);

    /**
     * 方法描述: 查询树结构
     *
     * @param
     * @Return {@link ResponseVO< List< HelloWorldEntity>>}
     * @throws
     * @author duanhengfei
     * @date 2021年02月24日 14:31:38
     */
    ResponseVO<List<HelloWorldTreeVO>> tree();
}
